#include "ocl.h"
namespace ocl
{
    oclManager& oclGetManager()
    {
        return oclManager::Instance();
    }
    oclDevice& oclGetDevice()
    {
        oclManager& mgr = oclManager::Instance();
        return mgr.GetDevice();
    }
    oclDevice& oclSelDevice(cl_device_type devType, unsigned int seqOrder)
    {
	    oclManager& mgr = oclManager::Instance();
	    return mgr.SelDevice(devType, seqOrder);
    }
    cl_context oclGetContext()
    {
        oclManager& mgr = oclManager::Instance();
        return mgr.GetDevice().Get_cl_context();
    }
    cl_command_queue oclGetCommandQueue()
    {
        oclManager& mgr = oclManager::Instance();
        return mgr.GetDevice().Get_cl_command_queue();
    }
    unsigned int oclGetPfmCount()
    {
        oclManager& mgr = oclManager::Instance();
        return mgr.GetPfmCount();
    }
    unsigned int oclGetDevCount()
    {
        oclManager& mgr = oclManager::Instance();
        return mgr.GetDevCount();
    }
    void oclGetPfmInfo(unsigned int idx, oclPlatformInfo& info)
    {
        oclManager& mgr = oclManager::Instance();
        mgr.GetPfmInfo(idx, info);
    }
    void oclGetDevInfo(unsigned int idx, oclDeviceInfo& info)
    {
        oclManager& mgr = oclManager::Instance();
        mgr.GetDevInfo(idx, info);
    }
}

